import time
t1 = time.time()

#第一步 生成并输出学生字典
import random
dct= {}
for k in range(65, 80):
    i = random.randint(35, 100)#生成学生成绩的范围数据
    dct[chr(k)] = i#运用chr函数生成a-o15个名字
print(dct)

#第二步 按照学生成绩降序排列并输出字典
student_number_sorted = sorted(dct.items(),key=lambda x: x[1], reverse=True)#ppt6.2中的降序知识点
print("降序排列", student_number_sorted)

#第三步 计算平均值，最大值，最小值
import numpy#导入numpy第三方库 计算平均分 最大最小值
student_number = []#创建列表并将学生成绩导入
for i,k in dct.items():#遍历字典取出学生成绩
    student_number.append(k)#将学生字典的值嵌套入列表
print("平均分%.2f" % numpy.average(student_number))
print('最大值', numpy.max(student_number))
print('最小值',numpy.min(student_number))

#第四步 统计不合格人数
h = 0
for i in student_number:#遍历列表
    if i < 60:
        h = h + 1
print('不及格人数为', h)

t2 = time.time()
print('运行耗时:{:.2f}秒'.format(t2-t1))

#第五步 （选做）能够输入学生姓名并输出水平
z = input("输入")
average_number = numpy.average(student_number)
list = dct.keys()#将学生字典的键转化为列表形式
for i,k in dct.items():
    if z not in list:
        print("请输入正确学生名字")
        break
    else:#如果这个学生的名字存在
        if k >= average_number:
            print('该生成绩属于上等水平')
        elif k == average_number:
            print('该生成绩属于中等水平')
        elif k < average_number:
            print("该生成绩属于下等水平")
        break

#第六步(选做) 运用time统计查询时间
t3 = time.time()
print('查询耗时:{:.2f}秒'.format(t3-t1))